package org.joyflow.core.meta;

import java.io.Serializable;
import java.util.Properties;

public interface DatabaseInterface extends Cloneable{
    Serializable getId();
    void setId(Serializable id);
    String getName();

    void setName(String name);

    String getHostname();

    void setHostname(String hostname);

    int getPort();

    void setPort(int port);

    String getURL(String hostname,String port,String databaseName);


    String getUsername();

    void setUsername(String username);

    String getPassword();

    void setPassword(String password);

    String getDriverClass();

    int getAccessType();

    void setAccessType(int accessType);

    Properties getAttributes();
    void setAttributes(Properties attributes);

    String getDatabaseName();

    void setDatabaseName(String databaseName);

    int getDefaultDatabasePort();

    Object clone() throws CloneNotSupportedException;

    String getFieldDefinition(FieldDefinition fieldDefinition);
}
